isf 0.1.0

Parsing, Deserialization and Serialization of the Interactive Shader Format.
Documentation
/*{
	"CREDIT": "by VIDVOX",
	"ISFVSN": "2",
	"CATEGORIES": [
		"Color Adjustment"
	],
	"INPUTS": [
		{
			"NAME": "inputImage",
			"TYPE": "image"
		},
		{
			"NAME": "red",
			"TYPE": "float",
			"MIN": 0.0,
			"MAX": 2.0,
			"DEFAULT": 1.0
		},
		{
			"NAME": "green",
			"TYPE": "float",
			"MIN": 0.0,
			"MAX": 2.0,
			"DEFAULT": 1.0
		},
		{
			"NAME": "blue",
			"TYPE": "float",
			"MIN": 0.0,
			"MAX": 2.0,
			"DEFAULT": 1.0
		},
		{
			"NAME": "gain",
			"TYPE": "float",
			"MIN": -1.0,
			"MAX": 1.0,
			"DEFAULT": 0.0
		}
	]
}*/




void main() {
	vec4	pixel = IMG_THIS_PIXEL(inputImage);	
	float	brightness = (pixel.r * red + pixel.g * green + pixel.b * blue) / 3.0;
	
	pixel.r = pixel.r * red;
	pixel.g = pixel.g * green;
	pixel.b = pixel.b * blue;

	if (gain >= 0.0)	{
		pixel.a = (brightness >= gain) ? pixel.a : 0.0;
	}
	else	{
		pixel.a = (brightness <= 1.0-abs(gain)) ? pixel.a : 0.0;
	}
	gl_FragColor = pixel;
}